import { PaymentRecord, clearMemberPaymentRecords, savePaymentRecord } from './database'

// 模拟 API 调用延迟
const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms))

// 保存支付记录到数据库
export async function savePaymentRecordAPI(record: PaymentRecord): Promise<boolean> {
    try {
        // 模拟 API 调用
        await delay(100)

        // 调用 IndexedDB 数据库服务
        await savePaymentRecord(record)

        console.log('支付记录已保存到 IndexedDB:', record.id)
        return true
    } catch (error) {
        console.error('保存支付记录失败:', error)
        return false
    }
}

// 获取会员的支付记录
export async function getPaymentRecordsAPI(memberId: string): Promise<PaymentRecord[]> {
    try {
        // 模拟 API 调用
        await delay(200)

        // 从 IndexedDB 获取数据
        const { getPaymentRecords } = await import('./database')
        const records = await getPaymentRecords(memberId)

        console.log(`从 IndexedDB 获取到 ${records.length} 条支付记录`)
        return records
    } catch (error) {
        console.error('获取支付记录失败:', error)
        return []
    }
}

// 更新支付记录状态
export async function updatePaymentRecordStatusAPI(id: string, status: string, isRevoked: boolean = false): Promise<boolean> {
    try {
        // 模拟 API 调用
        await delay(100)

        // 这里应该调用实际的数据库服务
        console.log('支付记录状态已更新:', id, status, isRevoked)
        return true
    } catch (error) {
        console.error('更新支付记录状态失败:', error)
        return false
    }
}

// 清空会员的支付记录
export async function clearPaymentRecordsAPI(memberId: string): Promise<boolean> {
    try {
        // 模拟 API 调用
        await delay(100)

        // 调用 IndexedDB 清空操作
        await clearMemberPaymentRecords(memberId)

        console.log(`已清空会员 ${memberId} 的所有支付记录（IndexedDB）`)
        return true
    } catch (error) {
        console.error('清空支付记录失败:', error)
        return false
    }
} 